home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group98b.txt / 000103_icon-group-sender _Wed Jun 24 08:08:45 1998.msg < prev    next >
Internet Message Format  |  2000-09-20  |  11KB

  1. Return-Path: <icon-group-sender>
  2. Received: from kingfisher.CS.Arizona.EDU (kingfisher.CS.Arizona.EDU [192.12.69.239])
  3.     by baskerville.CS.Arizona.EDU (8.8.8/8.8.7) with SMTP id IAA01699
  4.     for <icon-group-addresses@baskerville.CS.Arizona.EDU>; Wed, 24 Jun 1998 08:08:44 -0700 (MST)
  5. Received: by kingfisher.CS.Arizona.EDU (5.65v4.0/1.1.8.2/08Nov94-0446PM)
  6.     id AA29429; Wed, 24 Jun 1998 08:08:34 -0700
  7. From: pygmy@eskimo.com (Frank Sergeant)
  8. To: icon-group@baskerville.CS.Arizona.EDU
  9. Subject: Re: using Icon for database application
  10. Date: Tue, 23 Jun 1998 16:33:31 -0500
  11. Reply-To: frank.sergeant@pobox.com
  12. Message-Id: <r8Bk1Yv1usle084yn@eskimo.com>
  13. In-Reply-To: <199806200137.UAA25365@axp.cmpu.net>
  14. Lines: 233
  15. Errors-To: icon-group-errors@optima.CS.Arizona.EDU
  16. Status: RO
  17. Content-Length: 10427
  18.  
  19. Gordon, I very much appreciate your comments and suggestions.
  20. I don't think I can agree completely yet, but you've given
  21. me food for thought.
  22.  
  23. gep2@computek.net (Gordon Peterson) wrote:
  24. > > xBASE language) and consists of around 150,000 lines of
  25. > > source.  It runs under DOS (or a DOS box in Windows).
  26. > That's a fairly huge Clipper application... I'd think that if it
  27. > were written really utilizing the tools present to best advantage
  28. ...
  29. > that it would be able to be a whole lot smaller than that.
  30.  
  31.      I agree that it is large and that it could/should be
  32. smaller.  I attribute this to my predecessors on the project.
  33. There has been a good bit of redundancy in the system.  For
  34. example, when I took it over I found 6 monthly statement
  35. routines: 1 set of 3 for each of 3 possible forms for
  36. printing a single statement and a similar set of 3 routines
  37. for printing all statements.  Obviously, this multiplies the
  38. opportunities for errors and increases the difficulty of
  39. wrapping one's mind around the system.  All reports were
  40. written individually, duplicating the line counting and
  41. report heading logic each time.  Etc.  I have gradually been
  42. factoring out the commonalities but a lot of work remains.
  43. I understand how such (unfactored) code comes about: there
  44. is no money to be made yet there is an obligation to do
  45. something (or at least appear to do something) to solve a
  46. current emergency, and so the most hurried quickest immediate
  47. fix is applied without regard to the long range maintenance
  48. problems it creates, cutting and pasting rather than
  49. analyzing and simplifying.
  50.  
  51.  
  52. > >... (Any workstation crashing puts the data files on the server at
  53. > risk.)  
  54. > I've written a program (in S*BOL) which reads through xBASE
  55. > .DBF files and "repairs" this kind of "not a database file"
  56. > problems.  It fixes many kinds of scrogged fields in the
  57. > header, and particularly fixes the length irregularities
  58. > which usually create this symptom.
  59.  
  60.      I'm going to quote two more parts of your message out of
  61. order so they will be near the above quote.
  62.  
  63. > reliable.  In all the time I've been working with FoxPro
  64. > (for DOS) I have seen few (if any) legitimate BUGS in the
  65. > FoxPro package itself.  It seems to overall be very stable.
  66.  
  67. > I think that, from a reliability and support standpoint,
  68. > it's in most cases just plain dumb to go to a mixed-OS
  69. > environment.
  70.  
  71.      I'm not sure it is a bug in the FoxPro package (or in
  72. Clipper), but _how come you have those S*BOL repair
  73. programs_ if FoxPro and the environment (and the OS) are so
  74. damn stable?  I think there are several factors.  One is
  75. whether the hardware, especially the RAM, is fully reliable
  76. or partially (intermittently) defective.  The best method I
  77. know of to determine this is to run what I call the Linux
  78. stress test (compile the Linux kernel).  I've written up a
  79. little article about this ("Stress Testing Hardware") and
  80. put it on my web site.  So, being able to run (and later
  81. rerun) this stress test to verify the hardware is a
  82. beneficial side effect of having Linux available.  Also, I
  83. am convinced Linux is a more reliable operating system than
  84. W95 (and perhaps WNT).
  85.  
  86.      Another factor in data integrity is what I was
  87. referring to when I called it "putting all my eggs in
  88. one basket", but that isn't really the best analogy.
  89. The eggs were already in one basket, that is, the
  90. application's data resided on a single machine, the
  91. file server.  The problem is that all the workstations
  92. independently access that data.  If any one of those
  93. machines fails, the data is at risk.  Putting a UPS
  94. on the server isn't enough, etc.  But, if I move to
  95. "client/server" then it seems I could arrange things
  96. so nothing the clients do can endanger the data on
  97. the server.  Therefore, I remove several potential
  98. points of failure.
  99.  
  100.      Another factor _may_ be bugs in W95.  It was
  101. interesting to read over the bug history list for
  102. Kermit.  Item after item referred to bugs they had
  103. located in W95 that were not present either in OS/2
  104. or in WNT.  With regard to file server record locking
  105. and such, there is the W95 "vredir" problem and several
  106. "fixes" from Microsoft and several Knowledge Base articles
  107. about it.  The Knowledge Base articles are gibberish as
  108. far as I am concerned.
  109.  
  110.      So, it may be dumb to go to a mixed OS environment.
  111. But, it may be dumber to use Windows by itself.  Anyway,
  112. I'm not saying you are wrong about this.  I've had my own
  113. strong reservations about recommending Linux for my
  114. customers due to the support problem.  I have figured that
  115. if W95 screws up, they might perhaps blame Microsoft, but
  116. if Linux screws up they will blame me.  Nevertheless, I
  117. have talked customers through (or have gone to the office
  118. to do it myself) various reconfigurations of W95 and its
  119. networking.  I am beginning to think Linux cannot cause
  120. me any more trouble than W95 is causing me.  Plus, Linux
  121. should be much easier to administer remotely, and that
  122. could be worth a lot.  So, I am not saying I will demand
  123. customers use a Linux server, just that I see a possible
  124. advantage to keeping my options open.  (Although it was
  125. W3.11, not W95, I've had a customer phone because our
  126. app would no longer run.  "What do you mean", I asked.
  127. It turned out the shortcut icon on the desktop had
  128. disappeared.  Well, I talked them through setting up
  129. the shortcut again.  Can you believe it?  The shortcut
  130. disappeared and _they_ didn't remove it (so they said, but
  131. I suspect they did somehow by accident).  I know our
  132. program didn't remove it.  Would Linux really cause me more
  133. trouble than that?)
  134.  
  135. > Icon doesn't even have native ISAM file support, and that's
  136. > just about a minimum pre-requisite for any serious business
  137. > use (IMHO).
  138.  
  139.      Hmmm.  So it looks like I am back to the question of
  140. whether all of the data would fit in RAM.  I think it would.
  141. I'll try to run some tests.
  142.  
  143.  
  144. > I believe that there are FoxPro (xBASE) flavor "server"
  145. > engines available... which would satisfy this goal (FWIW)
  146. > without requiring a complete application rewrite.
  147.  
  148.      This is a good point.  There are two products in
  149. particular that I have heard good things about.  One is
  150. Advantage Database Server.  It just costs money and requires
  151. a dedicated NT (or Novell) server which costs money.  I
  152. think we are talking about some thousands of dollars per
  153. customer (that I think they do not wish to pay).  But,
  154. Advantage gets rave reviews.  The other is RASQL/B which
  155. provides an interface from Clipper to Btrieve.  Again,
  156. substantial money for each customer.  Both of these seem
  157. like overkill, remembering that our typical office has
  158. two or three computers.
  159.  
  160. > >     2. Reduce network traffic (by not dragging the database
  161. > There are other ways to do that, whether by thin-client
  162. > approaches (ICK) or by things like ReachOut, PC-Anywhere, etc etc.
  163.  
  164.      Well, these solutions seem to require dedicating a
  165. machine at a central office for use by remote office (and
  166. possibly vice versa), since Windows isn't multi-user.  I
  167. could see it for occasional use.  We do have one customer
  168. using PC-Anywhere sometimes to access the office machine
  169. from home.
  170.  
  171. > I think that, with 32Mb of RAM costing maybe $50 or
  172. > thereabouts and 6Gb hard drives going for about $200-250,
  173. > any discussion of saving bytes by increasing programmer
  174. > effort is probably pretty silly.
  175.  
  176.      I generally agree with this.  My point was not so
  177. much to save bytes on disk, but to allow the entire
  178. database to reside in RAM.  I am not saying that is a
  179. general solution for every business application, just
  180. that it might well fit our application considering the
  181. size of our databases.  Then, bang!, with it all in RAM,
  182. certain complexities seem to disappear.  Well, I need
  183. to do some testing.  (And, although 32MB of RAM might
  184. seem cheap at $50, there is also the problem of how to
  185. get it put into the machine.  Will the customer do that
  186. himself?  I don't want to have to do it for him, but I
  187. might have to.  So, really, the cost is greater than just
  188. the $50.)
  189.  
  190. > If you're really worried about stuff like this, let me
  191. > suggest that (instead of application-specific forms of
  192. > compression like this) you'd be *far* better off to use
  193. > Stacker or even Microsoft's own disk compression software.
  194.  
  195.      It will be a cold day in hell before I use Microsoft's
  196. disk compression.  (Do I feel a chill in the room?).  Maybe
  197. I'm living too far in the past, but disk compression has
  198. caused too many problems.  Is it really reliable now?  I'm
  199. still very suspicious of all the disk compression products.
  200. Certainly (until convinced otherwise), I would buy larger
  201. hard disks first and recommend the same to my customers.
  202.  
  203. > It's also a big PITA (doing it yourself) when it comes time
  204. > to update records, since compressed records usually are
  205. > nontrivial to update in place.
  206.  
  207.      Well, I've got to think all this through.  But, if
  208. the data would indeed fit in RAM, wouldn't Icon take care
  209. of the updating in place automatically?  I'd have the
  210. responsibility of initially loading the data from disk
  211. at the start of the day (or the start of the year or the
  212. start of the hour depending on which operating system was
  213. in use) and writing it back out later.  I envision writing
  214. out log files as I go so the database could be reconstructed
  215. in case of a power failure, etc.
  216.  
  217. > I hope this helps you!
  218.  
  219.      Yes.  At least it makes me think and reconsider my
  220. opinions and prejudices.
  221.  
  222.  
  223. > The right tool for the right job.
  224.  
  225.      It is hard to argue with that.  On the other hand,
  226. it is not impossible.  There are costs to sticking entirely
  227. with Clipper.  There are costs to change.  Which will be
  228. best considering the short term and the long term?
  229.  
  230. > The right tool for the right job.
  231.  
  232.      It seems possible that there could be a language,
  233. possibly Icon or Python, or possibly a combination of two
  234. languages, that might generally be good enough for most
  235. programming tasks even if it wasn't the absolute best
  236. for any single one of those tasks, and not _too_ bad
  237. for all the other tasks so that I would be better off
  238. doing _everything_ in that one language (or two) when
  239. you consider the efficiencies of working with just one
  240. or two languages instead of 30 (fill in the blank) perfect
  241. languages each perfect for its own task.  This is just
  242. a conjecture, but it seems likely to me to be true.
  243.  
  244.  
  245.   -- Frank  (in sunny and hot San Marcos, Texas)
  246.  
  247.   frank.sergeant@pobox.com
  248.   http://www.eskimo.com/~pygmy   (for the Stress Testing article)
  249.